package com.arvato.minipro.service.mall;


import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.arvato.minipro.bean.bean_do.mall.EcBillboardDo;
import com.arvato.minipro.bean.bean_dto.common.PageData;
import com.arvato.minipro.bean.bean_dto.common.Query;
import com.arvato.minipro.bean.bean_vo.mall.EcBillboardVo;
import com.arvato.common.ftp.FtpTool;
import com.arvato.minipro.mapper.mall.EcBillboardMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

/**
 * Describe：商品分类service
 * 
 * @author smallking
 *
 *  2018年2月8日
 */
@Service
@Transactional
public class EcBillboardService {
	
	@Autowired
	private EcBillboardMapper ecBillboardMapper;
	
	@Autowired
	private FtpTool ftpTool;
	/**
	 * 根据ID查询轮播图
	 * @param BillboardId
	 * @return
	 */
	public EcBillboardVo getBillboardById(String billboardId) {
		return ecBillboardMapper.getBillboardById(billboardId);
	}
	
	/**
	 * 查询轮播图列表(分页查询)
	 * @param query
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public PageData listBillboardByQuery(Query query, Integer pageNum, Integer pageSize) {
		// 设置分页参数
		PageHelper.startPage(pageNum, pageSize);
		// 开始查询
		List<EcBillboardVo> billboardList = ecBillboardMapper.listBillboardByQuery(query);
 		// 得到分页结果
		PageInfo<EcBillboardVo> pageInfo = new PageInfo<EcBillboardVo>(billboardList);
		return new PageData(pageInfo.getTotal(), pageInfo.getList());
	}

	/**
	 * 查询轮播图列表(不分页)
	 * @param query
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public List<EcBillboardVo> listBillboardByQuery(Query query) {
		List<EcBillboardVo> billboardList = ecBillboardMapper.listBillboardByQuery(query);
		return billboardList;
	}
	
	/**
	 * 新增一个轮播图
	 * @param BillboardDo
	 * @return
	 */
	public int insert(EcBillboardDo billboardDo) {
		return ecBillboardMapper.insert(billboardDo);
	}

	/**
	 * 修改一个轮播图
	 * @param BillboardDo
	 * @return
	 */
	public int update(EcBillboardDo billboardDo) {
		return ecBillboardMapper.update(billboardDo);
	}

	/**
	 * 删除一个轮播图
	 * @param BillboardId
	 * @return
	 */
	public int delete(String billboardId) {
		EcBillboardVo billboardVo = ecBillboardMapper.getBillboardById(billboardId);
		int row = ecBillboardMapper.delete(billboardId);
		if(row == 1){
			// 如果删除成功 同时就要删除磁盘上的轮播图文件
			String fileName = billboardVo.getImgPath();
			ftpTool.delete(fileName);
		}
		return row;
	}

}
